package com.demo.example.proxy;

import org.springframework.cglib.proxy.Enhancer;

/**
 * @author gy
 * @date 2025/1/20
 */
public class CglibProxy {
    public static void main(String[] args) {
        // Enhancer 为 CGLIB 代理增强类
        Enhancer enhancer = new Enhancer();
        // 设置被代理类（父类），以便 CGLIB 去生成该类的子类
        enhancer.setSuperclass(UserService.class);
        // 你可以认为是设置增强方法
        enhancer.setCallback(new LogInterceptor());

        // 生成代理对象
        UserService proxy = (UserService) enhancer.create();

        // 执行代理方法
        proxy.select();
        System.out.println();
        proxy.update();
    }

}
